package com.internetCafes.spms.web.customer.service.role;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.internetCafes.spms.web.customer.entity.role.EntRoleInfo;
import com.internetCafes.spms.web.customer.model.role.*;

import java.util.List;

public interface IEntRoleInfoService extends IService<EntRoleInfo> {

    /**
     * 获取节点分支中的所有id
     *
     * @param userId 用户id
     * @return 分支节点id列表
     */
    List<Long> getBranchIdListByUserId(Long userId);

    /**
     * 新 - 角色分页
     *
     * @param page       分页信息
     * @param roleInfoDo 请求参数
     * @return 角色分页
     */
    Page<EntRoleInfoPo> pagingPo(Page<EntRoleInfo> page, EntRoleInfoDo roleInfoDo);

    /**
     * 初始化信息
     *
     * @param tenantId 初始化租户id
     */
    void initEntData(Long tenantId);

    /**
     * 根据用户id 获取当前用户能够匹配的列表权限
     *
     * @param userId 用户id
     * @return 菜单列表
     */
    List<RoleMenuPo> getUserMenuList(Long userId);

    /**
     * 列表
     */
    List<EntRoleListPo> poList(EntRoleListDo listDo);

    /**
     * 详情
     */
    EntRoleDetailPo getDetailById(Long id);

    /**
     * 分页
     */
    Page<EntRolePagingPo> paging(Page<EntRoleInfo> page, Wrapper<EntRoleInfo> queryWrapper);
}
